comments | difficulty | edit_url |
---|---|---|
true | 简单 |
整数转换。编写一个函数,确定需要改变几个位才能将整数A转成整数B。
示例1:
输入:A = 29 (或者0b11101), B = 15(或者0b01111) 输出:2
示例2:
输入:A = 1,B = 2 输出:2
提示:
- A,B范围在[-2147483648, 2147483647]之间
我们将 A 和 B 进行异或运算,得到的结果的二进制表示中
时间复杂度
classSolution: defconvertInteger(self, A: int, B: int) ->int: A&=0xFFFFFFFFB&=0xFFFFFFFFreturn (A^B).bit_count()
classSolution { publicintconvertInteger(intA, intB) { returnInteger.bitCount(A ^ B); } }
classSolution { public:intconvertInteger(int A, int B) { unsignedint c = A ^ B; return__builtin_popcount(c); } };
funcconvertInteger(Aint, Bint) int { returnbits.OnesCount32(uint32(A^B)) }
functionconvertInteger(A: number,B: number): number{letres=0;while(A!==0||B!==0){if((A&1)!==(B&1)){res++;}A>>>=1;B>>>=1;}returnres;}
implSolution{pubfnconvert_integer(a:i32,b:i32) -> i32{(a ^ b).count_ones()asi32}}
classSolution{func convertInteger(_ A:Int, _ B:Int)->Int{return(Int32(A) ^ Int32(B)).nonzeroBitCount }}